package com.jiangyao.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jiangyao.model.dto.ClassInfoDto;
import com.jiangyao.model.dto.backend.ClassInfoDTO;
import com.jiangyao.model.dto.backend.ClassInfoListPageDTO;
import com.jiangyao.model.entity.ClassInfo;
import com.jiangyao.model.vo.backend.ClassInfoListVO;
import com.jiangyao.model.vo.backend.ClassInfoVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 * 班级信息 服务类
 * </p>
 *
 * @author xiangyan
 * @since 2020-08-13
 */
public interface ClassInfoService extends IService<ClassInfo> {

	List<ClassInfo> getOrgClassByParams(ClassInfoDto queryDto);

	/**
	 * 获取班级列表
	 *
	 * @param listPageDTO 列表DTO
	 * @return 结果
	 */
	Page<ClassInfoListVO> getListPage(ClassInfoListPageDTO listPageDTO);

	/**
	 * 增加班级
	 *
	 * @param classInfoDTO 增加DTO
	 */
	void add(ClassInfoDTO classInfoDTO);

	/**
	 * 编辑班级
	 *
	 * @param classInfoDTO 编辑班级DTO
	 */
	void edit(ClassInfoDTO classInfoDTO);

	/**
	 * 编辑班级状态
	 *
	 * @param classInfoDTO 编辑班级状态DTO
	 */
	void editStatus(ClassInfoDTO classInfoDTO);

	/**
	 * 获取班级详情
	 *
	 * @param classInfoDTO 请求参数
	 * @return 结果
	 */
	ClassInfoVO getDetail(ClassInfoDTO classInfoDTO);

	/**
	 * 导出班级
	 *
	 * @param response    response
	 * @param listPageDTO 列表请求DTO json字符串
	 */
	void export(HttpServletResponse response, ClassInfoListPageDTO listPageDTO);
}
